//
//  NSDate+BRAdd.m
//  BRPickerViewDemo
//
//  Created by 任波 on 2017/8/11.
//  Copyright © 2017年 renb. All rights reserved.
//
//  最新代码下载地址：https://github.com/borenfocus/BRPickerView

#import "NSDate+BRAdd.h"

@implementation NSDate (BRAdd)

#pragma mark - 获取当前的时间
+ (NSString *)currentDateString {
    return [self currentDateStringWithFormat:@"yyyy-MM-dd HH:mm:ss"];
}

#pragma mark - 按指定格式获取当前的时间
+ (NSString *)currentDateStringWithFormat:(NSString *)formatterStr {
    // 获取系统当前时间
    return [self dateStringWithDate:[NSDate date] andFormat:formatterStr];
}

+ (NSString *)dateStringWithDate:(NSDate *)date andFormat:(NSString *)formatterStr {
    // 用于格式化NSDate对象
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    // 设置格式：yyyy-MM-dd HH:mm:ss
    formatter.dateFormat = formatterStr;
    // 将 NSDate 按 formatter格式 转成 NSString
    NSString *currentDateStr = [formatter stringFromDate:date];
    // 输出currentDateStr
    return currentDateStr;
}

+ (NSString *)currentDateShortString
{
    NSDate *date = [self currentDate];
    return [self dateStringWithDate:date andFormat:@"yyyy-MM-dd"];
}

+ (NSInteger)currentDateInterger
{
    NSDate *date = [self currentDate];
    return [date timeIntervalSince1970];
}

+ (NSDate *)currentDate
{
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDate *now = [NSDate date];
    NSDateComponents *components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:now];
    NSDate *startDate = [calendar dateFromComponents:components];
    return startDate;
}


// 得到以前某个日期
+ (NSString *)getAgoTimeFromNow:(NSString *)second
{
    //得到当前的时间
    NSDate * date = [NSDate date];
    
    NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    
    //设置时间间隔（秒）（这个我是计算出来的，不知道有没有简便的方法 )
    NSTimeInterval time = [second intValue];
    //得到一年之前的当前时间（-：表示向前的时间间隔（即去年），如果没有，则表示向后的时间间隔（即明年））
    NSDate * lastYear = [date dateByAddingTimeInterval:-time];
    
    //转化为字符串
    NSString * startDate = [dateFormatter stringFromDate:lastYear];
    return startDate;
}

// 得到以后某个日期
+ (NSString *)getLastTimeFromNow:(NSString *)second
{
    //得到当前的时间
    NSDate * date = [NSDate date];
    
    NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    
    //设置时间间隔（秒）（这个我是计算出来的，不知道有没有简便的方法 )
    NSTimeInterval time = [second intValue];
    //得到一年之前的当前时间（-：表示向前的时间间隔（即去年），如果没有，则表示向后的时间间隔（即明年））
    NSDate * lastYear = [date dateByAddingTimeInterval:time];
    
    //转化为字符串
    NSString * startDate = [dateFormatter stringFromDate:lastYear];
    return startDate;
}

@end
